(function (doc, win) {
    // 分辨率Resolution适配
    var docEl = doc.documentElement,
        resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize',
        recalc = function () {
            var clientWidth = docEl.clientWidth;
            if (!clientWidth) return;
            docEl.style.fontSize = 100 * (clientWidth / 375) + 'px';
        };

    // Abort if browser does not support addEventListener
    if (!doc.addEventListener) return;
    win.addEventListener(resizeEvt, recalc, false);
    doc.addEventListener('DOMContentLoaded', recalc, false);
})(document, window)

var turnplate = {
    restaraunts: [],				//大转盘奖品名称
    colors: [],					//大转盘奖品区块对应背景颜色
    outsideRadius: 192,			//大转盘外圆的半径
    textRadius: 130,				//大转盘奖品位置距离圆心的距离
    insideRadius: 68,			//大转盘内圆的半径
    startAngle: 0,				//开始角度
    bRotate: false,				//false:停止;ture:旋转
    prize: '' // 几等奖
};

var code = getQueryString('code');
var infoCode = '' // 用户信息是否完善 1004 代表不完善
var openid = '';// 用户id
// var baseUrl = 'http://192.168.43.248:8081/api/';
// var baseUrl = 'http://wx-api-sit.1safety.cc/api/';
var baseUrl = 'http://m.api.1safety.cc/api/';
var loginUrl = baseUrl + 'auth/login'; //登录 get
var prizedUrl = baseUrl + 'game/prized'; // 抽奖 post
var personUrl = baseUrl + 'game/person'; // 记录个人信息  post
var recordUrl = baseUrl + 'game/list'; // 获取中奖记录 get

var rotateFn;

var href = window.location.href;

if (!code) { // 上到服务器上时将此代码打开
    window.location.href = 'https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxf873bd7fdb2bd0be&redirect_uri=' + href + '&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect'
} else {
    login()
}

// $(function () { // 上到服务器上时将此代码注销
//     $('#succBox2').show()
// })

function getQueryString (name) {
    var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
    var r = window.location.search.substr(1).match(reg);
    if (r != null) return unescape(r[2]);
    return null;
}


$(document).ready(function () {
    //动态添加大转盘的奖品与奖品区域背景颜色
    turnplate.restaraunts = ["一等奖", "二等奖", "三等奖", "纪念奖", "一等奖", "二等奖", "三等奖", "纪念奖"];
    turnplate.colors = ["#f19ec2", "#00b7ee", "#8fc31f", "#aa89bd", "#f39800", "#f29b76", "#b3d465", "#f0c600"];


    var rotateTimeOut = function () {
        $('#wheelcanvas').rotate({
            angle: 0,
            animateTo: 2160,
            duration: 8000,
            callback: function () {
                alert('网络超时，请检查您的网络设置！');
            }
        });
    };

    //旋转转盘 item:奖品位置; txt：提示语;
    rotateFn = function (item, prizeText) {
        var angles = item * (360 / turnplate.restaraunts.length) - (360 / (turnplate.restaraunts.length * 2));
        angles = 180 - angles
        $('#wheelcanvas').stopRotate();
        $('#wheelcanvas').rotate({
            angle: 0,
            animateTo: angles + 1800,
            duration: 8000,
            callback: function () {	//回调
                turnplate.bRotate = !turnplate.bRotate;    // 多次转动
                $("#succBox1 .contentInfo1").text('获得' + prizeText)
                $("#succBox1").show();
            }
        });
    };

    $('.pointer').click(function () {
        if (turnplate.bRotate) return;
        if (!openid) {
            alert('微信登录失败，请退出重新登录')
            return false;
        }
        turnplate.bRotate = !turnplate.bRotate;

        //获取随机数(奖品个数范围内)
        prized();
    });

    $('.closed1').click(function () {
        $("#succBox1").hide();
    })

    $('.succBut1').click(function () {
        $("#succBox1").hide();
        if (infoCode == 1004) {
            $("#succBox2").show();
        } else if (infoCode == 200) {
            $('#succBox3').show();
        }
    })

    $('.succBut2').click(function () {
        var validatObj = $(".validation");
        var isValidat = true
        var returnValidat;
        for (var i = 0; i < validatObj.length; i++) {
            returnValidat = validatFn(validatObj.eq(i))
            if (!returnValidat) {
                isValidat = false
            }
        }
        if (isValidat) person();
    })

    $(".closed3").click(function () {
        $('#succBox3').hide()
    })

    $(".closed4").click(function () {
        $('#succBox4').hide()
    })

    $(".validation").on('input', function () {
        validatFn($(this))
    })
});

function validatFn (obj) {
    var validatArr = obj.attr('data-validat').split(',');
    var promptText = obj.siblings('label').text().replace(/\s+/g, "");
    var myVal = obj.val();
    for (let i = 0; i < validatArr.length; i++) {
        if (validatArr[i] == 'require') {
            if (myVal === '') {
                obj.siblings('span').text('请输入' + promptText)
                return false
            } else {
                obj.siblings('span').text('')
            }
        }
        if (validatArr[i] == 'phone') {
            var reg = /^(13[0-9]|14[579]|15[0-3,5-9]|16[6]|17[0135678]|18[0-9]|19[89])\d{8}$/;
            if (!reg.test(myVal)) {
                obj.siblings('span').text('请输入正确' + promptText)
                return false
            } else {
                obj.siblings('span').text('')
            }
        }
    }
    return true
}

function login () { // 登录
    $.ajax({
        url: loginUrl,
        type: 'get',
        data: {
            'code': code,
            'isgame': 0,
            'platid': 1
        },
        dataType: 'json',
        success: function (response) {
            $('.loading').hide();
            if (response.code == 200) {
                openid = response.data.id
            } else {
                window.location.href = 'https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxf873bd7fdb2bd0be&redirect_uri=' + href.split('?')[0] + '&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect'
            }
        },
        error: function (response) {
            $('.loading').hide();
            alert('error:登录失败')
        }
    })
}

function person () {
    var userid = openid;
    var account = $("#name").val(); // 姓名
    var telephone = $("#phone").val(); //用户手机号
    var company = $("#company").val(); //用户单位
    var reg = /^(13[0-9]|14[579]|15[0-3,5-9]|16[6]|17[0135678]|18[0-9]|19[89])\d{8}$/;
    if (telephone === '' || company === '' || telephone === '' || !reg.test(telephone)) {
        alert('请填写信息')
    }
    $.ajax({
        url: personUrl,
        type: 'post',
        data: {
            'userid': userid,
            'account': account,
            'telephone': telephone,
            'company': company
        },
        dataType: 'json',
        async: true,
        contentType: 'application/x-www-form-urlencoded;charset=utf-8',
        timeout: 30000,
        success: function (data) {
            if (data.code == 200) {
                $("#succBox3").show();
                $("#succBox2").hide();
            }else{
                alert(data.message)
            }
        }
    })
}

function prized () {
    $.ajax({
        url: prizedUrl,
        type: 'post',
        data: {
            'userid': openid
        },
        dataType: 'json',
        async: false,
        contentType: 'application/x-www-form-urlencoded;charset=utf-8',
        timeout: 30000,
        success: function (response) {
            infoCode = response.code
            if (response.code == 200 || response.code == 1004) {
                var prize = response.data.prizemsg;
                // 0，1，2，-1分别是一等奖，二等奖，三等奖，纪念奖
                switch (prize) {
                    case '一等奖':
                        turnplate.prize = Math.random() > 0.5 ? 1 : turnplate.restaraunts.length / 2 + 1;
                        break;
                    case '二等奖':
                        turnplate.prize = Math.random() > 0.5 ? 2 : turnplate.restaraunts.length / 2 + 2;
                        break;
                    case '三等奖':
                        turnplate.prize = Math.random() > 0.5 ? 3 : turnplate.restaraunts.length / 2 + 3;
                        break;
                    case '纪念奖':
                        turnplate.prize = Math.random() > 0.5 ? 4 : turnplate.restaraunts.length / 2 + 4;
                        break;
                    default:
                        break;
                }
                rotateFn(turnplate.prize, turnplate.restaraunts[turnplate.prize - 1]);
                $('.contentInfo3 label span').text(prize)
            } else {
                turnplate.bRotate = !turnplate.bRotate; // 多次转动
                record()
                alert(response.message)
            }
            console.log(response)
        }
    })
}

function record () {
    $.ajax({
        url: recordUrl,
        type: 'POST',
        data: {
            'userid': openid,
            'pagenum': 1,
            'pagesize': 10
        },
        dataType: 'json',
        success: function (response) {
            if (response.code == 200 && response.data.records[0].prizeMsg) {
                $("#succBox4").show();
                $("#succBox4 .contentInfo1").text(response.data.records[0].prizeMsg)
            }
        },
        error: function (response) {
        }
    })
}

//页面所有元素加载完毕后执行drawRouletteWheel()方法对转盘进行渲染
// window.onload = function () {
//     debugger
//     drawRouletteWheel();
// };

// function drawRouletteWheel () {
//     debugger
//     var canvas = document.getElementById("wheelcanvas");
//     if (canvas.getContext) {
//         //根据奖品个数计算圆周角度
//         var arc = Math.PI / (turnplate.restaraunts.length / 2);
//         var ctx = canvas.getContext("2d");
//         //在给定矩形内清空一个矩形
//         ctx.clearRect(0, 0, 422, 422);
//         //strokeStyle 属性设置或返回用于笔触的颜色、渐变或模式  
//         ctx.strokeStyle = "#FFBE04";
//         //font 属性设置或返回画布上文本内容的当前字体属性
//         ctx.font = 'bold 22px Microsoft YaHei';
//         for (var i = 0; i < turnplate.restaraunts.length; i++) {
//             var angle = turnplate.startAngle + i * arc - 0.5 * Math.PI;
//             ctx.fillStyle = turnplate.colors[i];
//             ctx.beginPath();
//             //arc(x,y,r,起始角,结束角,绘制方向) 方法创建弧/曲线（用于创建圆或部分圆）    
//             ctx.arc(211, 211, turnplate.outsideRadius, angle, angle + arc, false);
//             ctx.arc(211, 211, turnplate.insideRadius, angle + arc, angle, true);
//             ctx.stroke();
//             ctx.fill();
//             //锁画布(为了保存之前的画布状态)
//             ctx.save();

//             //改变画布文字颜色
//             var b = i + 2;
//             if (b % 2) {
//                 ctx.fillStyle = "#FFFFFF";
//             } else {
//                 ctx.fillStyle = "#FFFFFF";   // #E5302F
//             };

//             //----绘制奖品开始----


//             var text = turnplate.restaraunts[i];
//             var line_height = 17;
//             //translate方法重新映射画布上的 (0,0) 位置
//             ctx.translate(211 + Math.cos(angle + arc / 2) * turnplate.textRadius, 211 + Math.sin(angle + arc / 2) * turnplate.textRadius);

//             //rotate方法旋转当前的绘图
//             ctx.rotate(angle + arc / 2 + Math.PI / 2);

//             /** 下面代码根据奖品类型、奖品名称长度渲染不同效果，如字体、颜色、图片效果。(具体根据实际情况改变) **/
//             if (text.indexOf("盘") > 0) {//判断字符进行换行
//                 var texts = text.split("盘");
//                 for (var j = 0; j < texts.length; j++) {
//                     ctx.font = j == 0 ? 'bold 20px Microsoft YaHei' : 'bold 18px Microsoft YaHei';
//                     if (j == 0) {
//                         ctx.fillText(texts[j] + "盘", -ctx.measureText(texts[j] + "盘").width / 2, j * line_height);
//                     } else {
//                         ctx.fillText(texts[j], -ctx.measureText(texts[j]).width / 2, j * line_height * 1.2); //调整行间距
//                     }
//                 }
//             } else if (text.indexOf("盘") == -1 && text.length > 8) {//奖品名称长度超过一定范围 
//                 text = text.substring(0, 8) + "||" + text.substring(8);
//                 var texts = text.split("||");
//                 for (var j = 0; j < texts.length; j++) {
//                     ctx.fillText(texts[j], -ctx.measureText(texts[j]).width / 2, j * line_height);
//                 }
//             } else {

//                 //在画布上绘制填色的文本。文本的默认颜色是黑色

//                 //measureText()方法返回包含一个对象，该对象包含以像素计的指定字体宽度
//                 ctx.fillText(text, -ctx.measureText(text).width / 2, 0);
//             }


//             //把当前画布返回（调整）到上一个save()状态之前 
//             ctx.restore();
//             //----绘制奖品结束----
//         }
//     }
// };
